Printing apparatus, printing apparatus control method, and storage medium

ABSTRACT

A printing apparatus to which an option unit can be connected includes a storage unit configured to store an update program for updating an option unit program, and an update unit configured to, if an option unit has been connected to the printing apparatus, update the option unit program using an update program stored by the storage unit.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to a printing apparatus, a printingapparatus control method, and a storage medium.

Description of the Related Art

An image forming apparatus, such as a multifunction peripheral, includesa central processing unit (CPU) of a main body controller unit thatcontrols the entire image forming apparatus, and option unit CPUs thatindividually control option functions, such as a FAX and a foldingmachine function. The various functions, such as the FAX and the foldingmachine function, are realized by the option unit CPUs operating basedon control programs corresponding to the respective functions, stored ina storage device such as a read-only memory (ROM).

Conventionally, when trying to utilize an option function, a serviceperson has had to mount the option unit and update the control programsof a combination of the option units matching the version of the controlprograms in the main body. Japanese Patent Application Laid-Open No.2008-116660 discusses a technology for updating option unit controlprograms. In this technology, the main body controller compares theversion of the control program in an option unit with the version ofthat control program on a server. If the option unit version is older,the main body controller downloads the option unit control program onthe server, and then downloads that control program to the option unit.

An option unit like a facsimile board can be used as an option unit thatis common to a plurality of models. For easier inventory management,such an option unit is handled as the identical unit stock number(unit+control program).

However, the option unit control program is frequently corrected inorder to respond to the various problems that arise when producing a newmodel, which naturally means that the program version also increaseseach time a correction is made. In this case, after the new version hasfinished being evaluated for the plurality of models, the option unitprogram for the models that have already been brought to market needs tobe downloaded.

When utilizing an option function for the first time, the service personfirst mounts the option unit on the main body. However, if left likethis, since the option unit is managed based on the identical stocknumber, the version of the control program in the option unit will oftenbe old. According to the technology discussed in Japanese PatentApplication Laid-Open No. 2008-116660, in this case, the option unitcontrol program has had to be updated after accessing the server anddownloading the option unit program to the main body. Further, it isalso necessary to determine on the main body side whether the optionunit control program corresponds to the version of the main body controlprogram.

SUMMARY OF THE INVENTION

The present invention is directed to a easily preventing the occurrenceof problems caused by mismatch in the program version between a mainbody and an option unit.

According to an aspect of the present invention, a printing apparatus,to which an option unit can be connected, includes a storage unitconfigured to store an update program for updating an option unitprogram, and an update unit configured to, if an option unit has beenconnected to the printing apparatus, update the option unit programusing an update program stored by the storage unit.

Further features and aspects of the present invention will becomeapparent from the following description of exemplary embodiments withreference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a hardware configuration of amultifunction peripheral.

FIG. 2 is a flowchart illustrating an example of processing performed ina multifunction peripheral for obtaining a program from a server.

FIG. 3 is a flowchart illustrating an example of update processing of amain body control program performed in a multifunction peripheral.

FIG. 4, which is composed of FIGS. 4A and 4B, is a flowchartillustrating an example of update processing of an option unit(facsimile unit, folding machine unit) control program performed in amultifunction peripheral.

FIG. 5 illustrates an example of an option unit selection screen.

FIG. 6 is a flowchart illustrating an example of update processing of anoption unit control program performed in a multifunction peripheral whenconnection of an option unit has been detected.

DESCRIPTION OF THE EMBODIMENTS

Various exemplary embodiments, features, and aspects of the inventionwill be described in detail below with reference to the drawings.

A first exemplary embodiment will now be described.

An exemplary embodiment of the present invention will be described belowwith reference to the drawings.

FIG. 1 illustrates an example of a hardware configuration of amultifunction peripheral 10.

The multifunction peripheral 10 includes a facsimile unit 200 and afolding machine unit 300 as option units in addition to a main bodycontroller unit 100. These option units are detachable from themultifunction peripheral 10 main body. The multifunction peripheral 10realizes various functions by CPUs of the main body controller unit andthe option units operating in cooperation with each other. The CPU inthe main body controller unit of the multifunction peripheral 10 isconnected to the CPU of each option unit via a device interface (I/F). Acontrol program describing the content to be processed by the CPU in therespective option units is stored in a rewritable non-volatile memory(flash memory) of each option unit.

The main body controller unit 100 is configured from the followingconstituent elements.

A CPU 101, which is a system control unit, controls the entireapparatus. A ROM 102 is a rewritable non-volatile memory that stores CPUcontrol programs. A random-access memory (RAM) 103, which is configuredfrom a static-RAM (SRAM), for example, stores image data. An imagememory 104, which is configured from a dynamic-RAM (DRAM), for example,stores image data. An image processing unit 105 performs correctionprocessing on image data read by a scanner, and outputs high-definitionimage data. A scanner 106 is configured from a CS image sensor, adocument conveyance mechanism and the like, optically reads a documentand converts the read document into electrical image data. The scanner106 performs two-sided document reading. An operation unit 107, which isconfigured from a keyboard and a display unit, allows an operator toperform various input operations. A print buffer 108 is a one page'sworth buffer memory for storing a printing character code. A printer 109is, for example, a laser beam printer (LBP) that records a receivedimage or file data on plain paper. The printer 109 can perform two-sidedrecording. A network I/F 110 controls a network. A device I/F 111controls the facsimile unit. A device I/F 112 controls the foldingmachine unit. An Internet protocol (IP) network 113 is a network such asthe Internet, for example.

Option unit control programs are stored in the ROM 102, being embeddedin a control program 1021 used by the CPU 101 of the main bodycontroller unit. Specifically, a facsimile unit control program 1022 anda folding machine unit control program 1023 used by the CPUs of thefacsimile unit and the folding machine unit, respectively, are embed andstored in the ROM 102. The CPU 101 performs various controls regardingthe multifunction peripheral 10 based on a main body controller unit 100control program. On the other hand, the facsimile unit control program1022 and the folding machine unit control program 1023 stored in aprogram update area of the ROM 102 are downloaded into the facsimileunit and the folding machine unit, respectively. The facsimile unit 200includes a CPU 201, a rewritable non-volatile memory 202 (flash memory)storing that control program, and a host I/F 203. The host I/F 203 ofthe facsimile unit 200 is connected to the device I/F 111 of the mainbody controller unit 100. The folding machine unit 300 includes a CPU301, a rewritable non-volatile memory 302 (flash memory) storing thatcontrol program, and a host I/F 303. The host I/F 303 in the foldingmachine unit 300 is connected to the device I/F 112 of the main bodycontroller unit 100.

Although the following exemplary embodiment, which includes the presentexemplary embodiment, is described such that the main body controlprogram includes the option unit control programs, the followingexemplary embodiment is not limited to this. For example, themultifunction peripheral 10 may be configured to obtain and store a filein which the main body control program and the control programs of theoption units that can be connected to the multifunction peripheral 10constitute a pack. Further, in the present exemplary embodiment,although the facsimile unit 200 and the folding machine unit 300 aredescribed as an example of the option units for ease of description, theoption units are not limited to these. For example, examples of otheroption units include a punch unit and a saddle stitch binding unit,which are described below in other exemplary embodiments. Further, themultifunction peripheral 10 is an example of an image forming apparatus.

Further, in the following, the facsimile unit control program 1022 isalso referred to as the control program of the facsimile unit and thefolding machine unit control program 1023 is also referred to as thecontrol program of the folding machine unit.

FIG. 2 is a flowchart illustrating an example of processing performed bythe multifunction peripheral 10 for obtaining a program from a server.

In step S10, when a predetermined operation from the user is performed,the CPU 101 displays an update operation screen on the operation unit107.

In step S11, the CPU 101 determines whether an update instruction hasbeen received from the user via the operation screen. If it isdetermined by the CPU 101 that an update instruction has been receivedfrom the user via the operation screen (YES in step S11), the processingproceeds to step S12. If it is determined by the CPU 101 that an updateinstruction has not been received from the user via the operation screen(NO in step S11), the CPU 101 repeats the processing of step S11.

In step S12, the CPU 101 obtains the latest main body control programfrom a server capable of communication via the network. As describedabove, this main body control program includes the latest controlprograms of the option units that can be connected to the multifunctionperipheral 10. For example, even if the option units connected to themultifunction peripheral 10 include two types of the option units thatare a facsimile unit and a folding machine unit, the main body controlprogram still includes the control programs for other option units thatare not connected to the multifunction peripheral 10, such as a punchunit and a saddle stitch binding unit.

In step S13, the CPU 101 stores the obtained main body control programin a download area of the ROM 102.

In step S14, the CPU 101 copies the main body control program stored inthe download area to a program update area in the ROM 102. Further, theCPU 101 may also be configured to copy only the portion other than theoption unit control programs included in the main body control program(i.e., the actual main body control program portion).

In step S15, the CPU 101 restarts the main body of the multifunctionperipheral 10.

FIG. 3 is a flowchart illustrating an example of update processing of amain body control program performed by the multifunction peripheral 10.The processing of FIG. 3 is performed following on from step S15 of FIG.2.

When the main power of the multifunction peripheral 10 main body isturned on, the CPU 101 executes the following processing based on themain body control program stored in a program storage area of the ROM102. First, in step S20, the CPU 101 starts the main body of themultifunction peripheral 10.

In step S21, the CPU 101 determines whether there is a main body controlprogram in the program update area of the ROM 102. If it is determinedby the CPU 101 that there is a main body control program in the programupdate area of the ROM 102 (YES in step S21), the processing proceeds tostep S22. If it is determined by the CPU 101 that there is not a mainbody control program in the program update area of the ROM 102 (NO instep S21), the processing illustrated in FIG. 3 is finished.

In step S22, the CPU 101 proceeds to a program update mode.

In step S23, the CPU 101 executes update processing to update the mainbody control program of the multifunction peripheral 10 to the main bodycontrol program in the program update area. For example, the CPU 101replaces the main body control program stored in the program storagearea of the ROM 102 with the main body control program in the programupdate area.

In step S24, the CPU 101 deletes the main body control program in theprogram update area.

Based on the processing illustrated in FIGS. 2 and 3, the main bodycontrol program is updated to the latest main body control program.Further, the multifunction peripheral 10 can store in the download areaof the ROM 102 the latest main body control program as well as thelatest control programs for the option units that can be connected.

FIG. 4, which is composed of FIGS. 4A and 4B, is a flowchartillustrating an example of update processing of an option unit(facsimile unit, folding machine unit) control program performed by themultifunction peripheral 10.

When the main power of the multifunction peripheral 10 main body isturned on, the CPU 101 executes the following processing based on themain body control program. First, in step S101, the CPU 101 starts themain body of the multifunction peripheral 10.

In step S102, the CPU 101 determines whether there is an option unitcontrol program in the program update area of the ROM 102. If it isdetermined by the CPU 101 that there is an option unit control programin the program update area of the ROM 102 (YES in step S102), theprocessing proceeds to step S115. On the other hand, if it is determinedby the CPU 101 that there is not an option unit control program in theprogram update area of the ROM 102 (NO in step S102), the processingproceeds to step S103.

When the processing illustrated in FIG. 4 is first executed, there is nooption unit control program in the program update area. Therefore, thedetermination in step S102 is “NO”, and the processing proceeds to stepS103. Then, when an option unit control program has been copied to theprogram update area in the below-described step S107 or step S112, thedetermination in step S102 will be “YES”, so the processing proceeds tostep S115. Then, as illustrated in the below-described steps S115 andS116, the option unit control program is updated.

In step S103, the CPU 101 determines whether the facsimile unit 200 thatis to be control target of the main body controller unit 100 isconnected. If it is determined by the CPU 101 that the facsimile unit200 is connected (YES in step S103), the processing proceeds to stepS104. If it is determined by the CPU 101 that the facsimile unit 200 isnot connected (NO in step S103), the processing proceeds to step S108.

In step S104, the CPU 101 sends a command relating to an obtainmentrequest for the version of the control program that is stored in theflash memory 202 in the facsimile unit 200 to the connection destinationfacsimile unit 200. The CPU 101 then determines based on the response tothis command whether the version of the control program of the facsimileunit 200 was successfully obtained. If it is determined by the CPU 101that the version of the control program of the facsimile unit 200 wassuccessfully obtained (YES in step S104), the processing proceeds tostep S105. If it is determined by the CPU 101 that the version of thecontrol program of the facsimile unit 200 was not obtained (NO in stepS104), the processing proceeds to step S108.

In step S105, the CPU 101 compares the obtained version with the versionof the facsimile unit control program stored in the download area of theROM 102 of the main body controller unit.

In step S106, based on the comparison result, the CPU 101 determineswhether the obtained version is older. If it is determined by the CPU101 based on the comparison result that the obtained version is older(YES in step S106), the processing proceeds to step S107. If it isdetermined that the obtained version is not older (NO in step S106), theprocessing proceeds to step S108.

In step S107, the CPU 101 copies the facsimile unit control programstored in the download area to the program update area of the ROM 102.More specifically, the CPU 101 copies the latest facsimile unit controlprogram included in the main body control program stored in the downloadarea to the program update area of the ROM 102.

In step S108, the CPU 101 determines whether the folding machine unit300 that is to be control target of the main body controller unit 100 isconnected. If it is determined by the CPU 101 that the folding machineunit 300 is connected (YES in step S108), the processing proceeds tostep S109. If it is determined by the CPU 101 that the folding machineunit 300 is not connected (NO in step S108), the processing proceeds tostep S114.

In step S109, the CPU 101 sends a command relating to an obtainmentrequest for the version of the control program that is stored in theflash memory 302 in the folding machine unit 300 to the connectiondestination folding machine unit 300. The CPU 101 then determines basedon the response to this command whether the version of the controlprogram of the folding machine unit 300 was successfully obtained. If itis determined by the CPU 101 that the version of the control program ofthe folding machine unit 300 was successfully obtained (YES in stepS109), the processing proceeds to step S110. If it is determined by theCPU 101 that the version of the control program of the folding machineunit 300 was not obtained (NO in step S109), the processing proceeds tostep S114.

In step S110, the CPU 101 compares the obtained version with the versionof the folding machine unit control program stored in the download areaof the ROM 102 of the main body controller unit.

In step S111, based on the comparison result, the CPU 101 determineswhether the obtained version is older. If it is determined by the CPU101 based on the comparison result that the obtained version is older(YES in step S111), the processing proceeds to step S112. If it isdetermined that the obtained version is not older (NO in step S111), theprocessing proceeds to step S114.

In step S112, the CPU 101 copies the folding machine unit controlprogram stored in the download area to the program update area of theROM 102. More specifically, the CPU 101 copies the latest foldingmachine unit control program included in the main body control programstored in the download area to the program update area of the ROM 102.

In step S113, the CPU 101 restarts the main body of the multifunctionperipheral 10.

On the other hand, in step S114, the CPU 101 starts the main body of themultifunction peripheral 10 as normal.

Further, on the other hand, in step S115, the CPU 101 proceeds to aprogram update mode.

In step S116, the CPU 101 executes program update processing. Forexample, if there is the latest facsimile unit control program in theprogram update area, the CPU 101 executes processing to update thefacsimile unit control program stored in the flash memory 202 of thefacsimile unit 200 with the latest facsimile unit control program.Further, for example, if there is the latest folding machine unitcontrol program in the program update area, the CPU 101 executesprocessing to update the folding machine unit control program stored inthe flash memory 302 of the folding machine unit 300 with the latestfolding machine unit control program.

In step S117, the CPU 101 deletes the option unit control programs inthe program update area.

A second exemplary embodiment will now be described.

In the first exemplary embodiment, description is made such that the CPU101 obtains from the server and stores a main body control programincluding the latest control programs of all the option units that canbe connected to the main body controller unit 100.

However, storing a main body control program that includes the latestcontrol programs of all the option units that can be connected wastesmemory.

Therefore, when the CPU 101 according to the present exemplaryembodiment detects a predetermined operation, the CPU 101 displays theoption unit selection screen illustrated in FIG. 5 on the operation unit107. FIG. 5 illustrates an example of an option unit selection screen.The user selects on an option unit selection screen like thatillustrated in FIG. 5 an option unit that does not have the latestprogram, and then selects the OK button. Based on this operation, anoption unit that does not have the latest program can be selected. TheCPU 101 sets the option unit selected on the option unit selectionscreen as an option unit that does not have the latest program, andstores the setting information in the ROM 102.

Based on this setting information, the CPU 101 may obtain from theserver a main body control program that includes only the latest optionunit control programs that the user needs. Specifically, based on thesetting information, the CPU 101 may obtain from the server a main bodycontrol program that includes the option units other than the optionunits set as option units that do not have the latest program. Further,the CPU 101 may once obtain the main body control program similar to thefirst exemplary embodiment from the server, and based on the settinginformation, delete the option unit control programs that are notnecessary from the main bode control program, and then save theresultant main body control program.

FIG. 6 is a flowchart illustrating an example of update processing of anoption unit control program performed by the multifunction peripheral 10when connection of an object unit has been detected.

In step S200, the CPU 101 determines whether connection of an optionunit to the main body controller unit 100 has been detected. If it isdetermined by the CPU 101 that connection of an option unit has beendetected (YES in step S200), the processing proceeds to step S201. If itis determined by the CPU 101 that connection of an option unit has notbeen detected (NO in step S200), the processing repeats the processingof step S200.

In step S201, the CPU 101 determines based on the setting informationwhether the option unit for which a connection was detected is an optionunit that is set as not having the latest program. If it is determinedby the CPU 101 that the option unit for which a connection was detectedis an option unit that is set as not having the latest program (YES instep S201), the processing proceeds to step S205. On the other hand, ifit is determined by the CPU 101 that the option unit for which aconnection was detected is an option unit that is not set as not havingthe latest program (NO in step S201), the processing proceeds to stepS202.

In step S202, the CPU 101 compares the version of the option unitcontrol program obtained from the option unit for which a connection wasdetected with the version of the option unit control program stored inthe download area of the ROM 102 of the main body controller unit.

In step S203, based on the comparison result, the CPU 101 determineswhether the version obtained from the option unit is older. If it isdetermined by the CPU 101 based on the comparison result that theversion obtained from the option unit is older (YES in step S203), theprocessing proceeds to step S204. However, if it is determined that theversion obtained from the option unit is not older (NO in step S203),the processing returns to step S200.

In step S204, the CPU 101 copies the option unit control program storedin the download area to the program update area of the ROM 102.

On the other hand, in step S205, the CPU 101 determines whether thelatest control program of the option unit for which a connection wasdetected is on the server. For example, the CPU 101 obtains the versionof the option unit control program from the option unit for which aconnection was detected. Further, the CPU 101 sends a command inquiringwhether a newer version than that option unit version is present on theserver. The CPU 101 may then determine based on the response from theserver to this command whether there is a newer version than the optionunit version.

If it is determined by the CPU 101 that the latest control program ofthe option unit for which a connection was detected is on the server(YES in step S205), the processing proceeds to step S206. If it isdetermined by the CPU 101 that the latest control program of the optionunit for which a connection was detected is not on the server (NO instep S205), the processing returns to step S200.

In step S206, the CPU 101 obtains the latest control program of theoption unit for which a connection was detected from the server (latestprogram obtainment). Further, the CPU 101 may obtain only the latestcontrol program of the option unit for which a connection was detectedfrom the server, or may obtain the main body control program in whichthe latest control program of this option unit is included.

In step S207, the CPU 101 copies the obtained latest control program ofthe option unit to the program update area (latest program copying).

In step S208, the CPU 101 changes the setting information so that theoption unit for which a connection was detected is deleted from theoption units that do not have the latest program. Alternatively, the CPU101 may set the option unit for which a connection was detected as anoption unit that has the latest program.

In step S209, the CPU 101 restarts the main body of the multifunctionperipheral 10.

Other Embodiments will be described.

The present invention can also be realized by executing followingprocessing. Specifically, the processing is supplying software (aprogram) for realizing the functions of the above exemplary embodimentto a system or an apparatus via a network or via various storage media,and causing a computer (or a CPU or a micro processing unit (MPU)) ofthe system or apparatus to read and execute the program.

According to the above exemplary embodiments, when a new option unit ismounted, the option unit programs that match the combination with themain body program can be automatically downloaded. Consequently, theoccurrence of problems caused by a mismatch in the program versionbetween the main body and the option unit can be easily prevented.Further, even when an option unit that is common to a plurality ofmultifunction peripheral models can be used, the control program that ismost suited to that model can be automatically updated. Therefore, thework and effort required for this operation or for managing the optionunits can be reduced.

Other Embodiments

Embodiments of the present invention can also be realized by a computerof a system or apparatus that reads out and executes computer executableinstructions recorded on a storage medium (e.g., non-transitorycomputer-readable storage medium) to perform the functions of one ormore of the above-described embodiment(s) of the present invention, andby a method performed by the computer of the system or apparatus by, forexample, reading out and executing the computer executable instructionsfrom the storage medium to perform the functions of one or more of theabove-described embodiment(s). The computer may comprise one or more ofa central processing unit (CPU), micro processing unit (MPU), or othercircuitry, and may include a network of separate computers or separatecomputer processors. The computer executable instructions may beprovided to the computer, for example, from a network or the storagemedium. The storage medium may include, for example, one or more of ahard disk, a random-access memory (RAM), a read only memory (ROM), astorage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2012-197555, filed Sep. 7, 2012, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. A printing apparatus, which can be connected toplural option units, the printing apparatus comprising: a booting unitconfigured to boot the printing apparatus; a printer; a networkinterface circuit configured to receive at least one printer updateprogram for updating a control program for controlling an operation ofthe printing apparatus, and plural update programs for updating controlprograms each of which controls an operation of one of plural optionunits; a connection interface circuit configured to connect an optionunit to the printing apparatus, the option unit including a memory forstoring a control program for controlling an operation of the optionunit; a storage memory configured to store a control program forcontrolling the operation of the printing apparatus, the receivedprinter update program for updating the control program for controllingthe operation of the printing apparatus and the received plural updateprograms for updating the control programs each of which controls theoperation of one of plural option units, wherein the storage memoryalready has stored the received printer update program for updating thecontrol program for controlling the operation of the printing apparatusand the received plural update programs for updating the controlprograms each of which controls the operation of one of plural optionunits before one of the option units is connected to the connectioninterface circuit; a detecting unit configured to detect that the optionunit in the plural option units has been connected to the connectioninterface circuit; and an update unit configured to update, by selectingand using one update program corresponding to the detected option unitfrom the received plural update programs stored by the storage memory,the control program stored in the memory of the detected option unit ina case where the detecting unit has detected that the option unit hasbeen connected to the connection interface circuit and the booting unithas booted the printing apparatus after the option unit has beenconnected to the connection interface circuit, wherein the update unitdoes not perform update process using an update program corresponding toan option unit which is not detected, and wherein the option unit is anyone of a facsimile unit, a folding machine unit, a punch unit, and asaddle stitch binding unit which performs a finishing process to beperformed on sheets printed by the printer.
 2. The printing apparatusaccording to claim 1, further comprising a comparing unit configured tocompare, in a case where the detecting unit detects that the option unithas been connected to the connection interface circuit, a version of theupdate program stored by the storage memory and a version of the programof the option unit, wherein, in a case where a result of the comparisonby the comparing unit indicates that the version of the update programstored by the storage memory is newer than the version of the program ofthe option unit, the update unit updates, using the update programstored by the storage memory, the program of the option unit.
 3. Theprinting apparatus according to claim 2, wherein, in a case where theresult of the comparison by the comparing unit indicates that theversion of the update program stored by the storage memory is older thanthe version of the program of the option unit, the update unit does notupdate the program of the option unit.
 4. The printing apparatusaccording to claim 1, wherein the storage memory is a read-only memory(ROM).
 5. The printing apparatus according to claim 1, furthercomprising; a downloading unit configured to download a second updateprogram for updating the control program for controlling the operationof the printing apparatus together with the update program for updatingthe control program stored in the memory of the option unit; and asecond update unit configured to update the control program forcontrolling the operation of the printing apparatus in a case where thesecond update program has been downloaded.
 6. The printing apparatusaccording to claim 5, wherein the second update unit is configured toupdate the control program for controlling the operation of the printingapparatus in response to the second update program being downloaded. 7.A method of controlling a printing apparatus, which can be connected toplural option units, the printing apparatus having a booting unitconfigured to boot the printing apparatus, a printer, a networkinterface circuit configured to receive at least one printer updateprogram for updating a control program for controlling an operation ofthe printing apparatus, and to receive plural update programs forupdating control programs each of which controls an operation of one ofplural option units, a connection interface circuit configured toconnect an option unit to the printing apparatus, the option unitincluding a memory for storing a control program for controlling anoperation of the option unit, a storage memory, and an update unit, themethod comprising: storing in the storage unit a control program forcontrolling the operation of the printing apparatus, the receivedprinter update program for updating the control program for controllingthe operation of the printing apparatus and the received plural updateprograms for updating the control programs each of which controls theoperation of one of plural option units, wherein the storage memoryalready has stored the received printer update program for updating thecontrol program for controlling the operation of the printing apparatusand the received plural update programs for updating the controlprograms each of which controls the operation of one of plural optionunits before one of the option units is connected to the connectioninterface circuit; detecting that the option unit in the plural optionunits has been connected to the connection interface circuit; andupdating, by selecting and using one update program corresponding to thedetected option unit from the received plural update programs stored bythe storage memory, the control program stored in the memory of thedetected option unit in a case where the detecting unit has detectedthat the option unit has been connected to the connection interfacecircuit and the booting unit has booted the printing apparatus after theoption unit has been connected to the connection interface circuit,wherein the update unit does not perform update process using an updateprogram corresponding to an option unit which is not detected, andwherein the option unit is any one of a facsimile unit, a foldingmachine unit, a punch unit, and a saddle stitch binding unit whichperforms a finishing process to be performed on sheets printed by theprinter.
 8. A computer-readable non-transitory storage medium thatstores a program of instructions, the program of instructions capable ofcausing a computer to perform a method of controlling a printingapparatus, which can be connected to plural option units, the printingapparatus having a booting unit configured to boot the printingapparatus, a printer, a network interface circuit configured to receiveat least one printer update program for updating a control program forcontrolling an operation of the printing apparatus, and to receiveplural update programs for updating control programs each of whichcontrols an operation of one of plural option units, a connectioninterface circuit configured to connect an option unit to the printingapparatus, the option unit including a memory for storing a controlprogram for controlling an operation of the option unit, a storagememory, and an update unit, the method comprising: storing in thestorage unit a control program for controlling the operation of theprinting apparatus, the received printer update program for updating thecontrol program for controlling the operation of the printing apparatusand the received plural update programs for updating the controlprograms each of which controls the operation of one of plural optionunits, wherein the storage memory already has stored the receivedprinter update program for updating the control program for controllingthe operation of the printing apparatus and the received plural updateprograms for updating the control programs each of which controls theoperation of one of plural option units before one of the option unitsis connected to the connection interface circuit; detecting that theoption unit in the plural option units has been connected to theconnection interface circuit; and updating, by selecting and using oneupdate program corresponding to the detected option unit from thereceived plural update programs stored by the storage memory, thecontrol program stored in the memory of the detected option unit in acase where the detecting unit has detected that the option unit has beenconnected to the connection interface circuit and the booting unit hasbooted the printing apparatus after the option unit has been connectedto the connection interface circuit, wherein the update unit does notperform update process using an update program corresponding to anoption unit which is not detected, and wherein the option unit is anyone of a facsimile unit, a folding machine unit, a punch unit, and asaddle stitch binding unit which performs a finishing process to beperformed on sheets printed by the printer.
 9. A printing apparatus,which can be connected to plural option units, the printing apparatuscomprising: a printer; a connection interface circuit configured toconnect an option unit to the printing apparatus, the option unitincluding a memory for storing a control program for controllingoperation of the option unit; a network interface circuit configured toreceive at least one printer update program for updating a controlprogram for controlling an operation of the printing apparatus andplural update programs for updating control programs each of whichcontrols an operation of one of plural option units; at least one memorystoring instructions for execution by at least one processor and storinga control program for controlling an operation of the printingapparatus, a printer update program for updating the control program forcontrolling the operation of the printing apparatus and plural updateprograms for updating the control programs each of which controls anoperation of one of plural option units, wherein the at least one memoryhas already stored the update program before one of the plural optionunits is connected to the connection interface circuit; and the at leastone processor, operable when executing the instructions to: boot theprinting apparatus; detect that the option unit has been connected tothe connection interface circuit; and update, using the printer updateprogram stored by the at least one memory, the control program forcontrolling the operation of the printing apparatus in a case where thebooting unit has booted the printing apparatus and to update the controlprogram in the memory of the detected option unit by selecting one ofthe update programs, corresponding to the detected option unit, from thereceived plural update programs for updating the control programs, in acase where it has been detected that the option unit has been connectedto the connection interface circuit and the printing apparatus has beenbooted after the option unit has been connected to the connectioninterface circuit, wherein the option unit is any one of a facsimileunit, a folding machine unit, a punch unit, and a saddle stitch bindingunit which performs finishing process to be performed on sheets printedby the printer.
 10. A printing apparatus according to claim 9, furthercomprising: an input unit configured to input identification informationfor identifying at least one of the plural option units, wherein theupdate program corresponding to the option unit identified by the inputidentification information is held in the storage unit in accordancewith the input identification information.